package model

import "ginBasic/global"

var ConfigModel = new(Config)

type Config struct {
	Name string `json:"name"`
	Data string `json:"data"`
}

func (Config) TableName() string {
	return "td_config"
}

func (Config) List() ([]*Config, error) {
	config := []*Config{}
	err := global.DB.Find(&config).Error
	if err != nil {
		return nil, err
	}
	return config, nil
}

func (Config) GetColumn() []string {
	column := make([]string, 0)
	global.DB.Model(&Config{}).Pluck("name", &column)
	return column
}

func (Config) Update(key string, val interface{}) error {
	err := global.DB.Model(&Config{}).Where("name = ?", key).Update("data", val).Error
	return err
}

func (Config) Create(key string, val interface{}) error {
	err := global.DB.Model(&Config{}).Create(map[string]interface{}{"name": key, "data": val}).Error
	return err
}
